#ifndef GRAVITYDATA_H
#define GRAVITYDATA_H

#include <vector>
#include "Data.h"
#include "../utilities/Vector3.h"
#include "../enum.h"

namespace binge
{

class GravityData : public Data
{
public:
    GravityData(void);
    ~GravityData(void);

    virtual void AddObject(int id);
    virtual void RemoveObject(int id);

    //gravity
    float GetGravity(int id);
    void SetGravity(int id, float value);

    //status
    int GetStatus(int id);
    void SetStatus(int id, int value);

    //jump speed
    float GetJumpSpeed(int id);
    void SetJumpSpeed(int id, float value);

    //jump peak
    float GetJumpPeak(int id);
    void SetJumpPeak(int id, float value);

    //ground level
    float GetGround(int id);
    void SetGround(int id, float value);

    //XEdgeReflect
    bool HasXEdgeReflect(int id);
    void SetXEdgeReflect(int id, bool value);

    //XWallReflect
    bool HasXWallReflect(int id);
    void SetXWallReflect(int id, bool value);

private:
    std::vector<float> objectsGravity;
    std::vector<float> objectsJumpSpeed;
    std::vector<float> objectsJumpPeak;
    std::vector<float> objectsGround;
    std::vector<int> objectsStatus;

    std::vector<bool> objectsXEdgeReflect;
    std::vector<bool> objectsXWallReflect;
};

} // namespace

#endif // GRAVITYDATA_H
